package com.hl.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 用户列表对象 user
 * 
 * @author ruoyi
 * @date 2025-08-06
 */
public class User extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户id，主键自增 */
    private Integer userId;

    /** 用户昵称 */
    @Excel(name = "用户昵称")
    private String userName;

    /** 用户电话 */
    @Excel(name = "用户电话")
    private String userTel;

    /** 用户账户 */
    @Excel(name = "用户账户")
    private String userAccount;

    /** 用户当前积分 */
    @Excel(name = "用户当前积分")
    private Long userPoints;

    /** 累计余额 */
    @Excel(name = "累计余额")
    private BigDecimal totalBalance;

    /** 累计消费金额 */
    @Excel(name = "累计消费金额")
    private BigDecimal totalConsume;

    /** 累计获得积分 */
    @Excel(name = "累计获得积分")
    private Long totalPoints;

    /** 累计消费积分 */
    @Excel(name = "累计消费积分")
    private Long consumePoints;

    /** 用户登录密码 */
    @Excel(name = "用户登录密码")
    private String userPassword;

    /** 积分支付密码 */
    @Excel(name = "积分支付密码")
    private String paymentPassword;

    /** 会员状态(0:非会员,1:正常,2:过期) */
    @Excel(name = "会员状态(0:非会员,1:正常,2:过期)")
    private Long vipStatus;

    /** 会员名称 */
    @Excel(name = "会员名称")
    private String vipName;

    /** 会员表id */
    @Excel(name = "会员表id")
    private Long vipId;

    /** 会员开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会员开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date vipStartTime;

    /** 会员结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会员结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date vipEndTime;

    /** 用户余额(平台佣金) */
    @Excel(name = "用户余额(平台佣金)")
    private BigDecimal userBalance;

    /** 用户头像URL */
    @Excel(name = "用户头像URL")
    private String userAvatar;

    /** 用户真实姓名 */
    @Excel(name = "用户真实姓名")
    private String userRealName;

    /** 用户性别(1:男,2:女,0:未知) */
    @Excel(name = "用户性别(1:男,2:女,0:未知)")
    private Long userSex;

    /** 用户邮箱 */
    @Excel(name = "用户邮箱")
    private String userEmail;

    /** 用户注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "用户注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date userCreateTime;

    /** 用户上次修改信息的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "用户上次修改信息的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date userUpdateTime;

    /** 用户上次登录的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "用户上次登录的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** 用户权限，多个用逗号分隔 */
    @Excel(name = "用户权限，多个用逗号分隔")
    private String roles;

    public void setUserId(Integer userId) 
    {
        this.userId = userId;
    }

    public Integer getUserId() 
    {
        return userId;
    }

    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }

    public void setUserTel(String userTel) 
    {
        this.userTel = userTel;
    }

    public String getUserTel() 
    {
        return userTel;
    }

    public void setUserAccount(String userAccount) 
    {
        this.userAccount = userAccount;
    }

    public String getUserAccount() 
    {
        return userAccount;
    }

    public void setUserPoints(Long userPoints) 
    {
        this.userPoints = userPoints;
    }

    public Long getUserPoints() 
    {
        return userPoints;
    }

    public void setTotalBalance(BigDecimal totalBalance) 
    {
        this.totalBalance = totalBalance;
    }

    public BigDecimal getTotalBalance() 
    {
        return totalBalance;
    }

    public void setTotalConsume(BigDecimal totalConsume) 
    {
        this.totalConsume = totalConsume;
    }

    public BigDecimal getTotalConsume() 
    {
        return totalConsume;
    }

    public void setTotalPoints(Long totalPoints) 
    {
        this.totalPoints = totalPoints;
    }

    public Long getTotalPoints() 
    {
        return totalPoints;
    }

    public void setConsumePoints(Long consumePoints) 
    {
        this.consumePoints = consumePoints;
    }

    public Long getConsumePoints() 
    {
        return consumePoints;
    }

    public void setUserPassword(String userPassword) 
    {
        this.userPassword = userPassword;
    }

    public String getUserPassword() 
    {
        return userPassword;
    }

    public void setPaymentPassword(String paymentPassword) 
    {
        this.paymentPassword = paymentPassword;
    }

    public String getPaymentPassword() 
    {
        return paymentPassword;
    }

    public void setVipStatus(Long vipStatus) 
    {
        this.vipStatus = vipStatus;
    }

    public Long getVipStatus() 
    {
        return vipStatus;
    }

    public void setVipName(String vipName) 
    {
        this.vipName = vipName;
    }

    public String getVipName() 
    {
        return vipName;
    }

    public void setVipId(Long vipId) 
    {
        this.vipId = vipId;
    }

    public Long getVipId() 
    {
        return vipId;
    }

    public void setVipStartTime(Date vipStartTime) 
    {
        this.vipStartTime = vipStartTime;
    }

    public Date getVipStartTime() 
    {
        return vipStartTime;
    }

    public void setVipEndTime(Date vipEndTime) 
    {
        this.vipEndTime = vipEndTime;
    }

    public Date getVipEndTime() 
    {
        return vipEndTime;
    }

    public void setUserBalance(BigDecimal userBalance) 
    {
        this.userBalance = userBalance;
    }

    public BigDecimal getUserBalance() 
    {
        return userBalance;
    }

    public void setUserAvatar(String userAvatar) 
    {
        this.userAvatar = userAvatar;
    }

    public String getUserAvatar() 
    {
        return userAvatar;
    }

    public void setUserRealName(String userRealName) 
    {
        this.userRealName = userRealName;
    }

    public String getUserRealName() 
    {
        return userRealName;
    }

    public void setUserSex(Long userSex) 
    {
        this.userSex = userSex;
    }

    public Long getUserSex() 
    {
        return userSex;
    }

    public void setUserEmail(String userEmail) 
    {
        this.userEmail = userEmail;
    }

    public String getUserEmail() 
    {
        return userEmail;
    }

    public void setUserCreateTime(Date userCreateTime) 
    {
        this.userCreateTime = userCreateTime;
    }

    public Date getUserCreateTime() 
    {
        return userCreateTime;
    }

    public void setUserUpdateTime(Date userUpdateTime) 
    {
        this.userUpdateTime = userUpdateTime;
    }

    public Date getUserUpdateTime() 
    {
        return userUpdateTime;
    }

    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    public void setRoles(String roles) 
    {
        this.roles = roles;
    }

    public String getRoles() 
    {
        return roles;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("userTel", getUserTel())
            .append("userAccount", getUserAccount())
            .append("userPoints", getUserPoints())
            .append("totalBalance", getTotalBalance())
            .append("totalConsume", getTotalConsume())
            .append("totalPoints", getTotalPoints())
            .append("consumePoints", getConsumePoints())
            .append("userPassword", getUserPassword())
            .append("paymentPassword", getPaymentPassword())
            .append("vipStatus", getVipStatus())
            .append("vipName", getVipName())
            .append("vipId", getVipId())
            .append("vipStartTime", getVipStartTime())
            .append("vipEndTime", getVipEndTime())
            .append("userBalance", getUserBalance())
            .append("userAvatar", getUserAvatar())
            .append("userRealName", getUserRealName())
            .append("userSex", getUserSex())
            .append("userEmail", getUserEmail())
            .append("userCreateTime", getUserCreateTime())
            .append("userUpdateTime", getUserUpdateTime())
            .append("lastLoginTime", getLastLoginTime())
            .append("roles", getRoles())
            .toString();
    }
}
